home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / site-packages / impacket / dcerpc / conv.py < prev    next >
Text File  |  2006-05-23  |  2KB  |  71 lines

  1. # Copyright (c) 2003-2006 CORE Security Technologies
  2. #
  3. # This software is provided under under a slightly modified version
  4. # of the Apache Software License. See the accompanying LICENSE file
  5. # for more information.
  6. #
  7. # $Id: conv.py,v 1.4 2006/05/23 21:19:26 gera Exp $
  8. #
  9. # Description:
  10. #   Implement CONV protocol, used to establish an RPC session over UDP.
  11. #
  12.  
  13. import array
  14. from impacket import ImpactPacket
  15.  
  16. MSRPC_UUID_CONV = '\x76\x22\x3a\x33\x00\x00\x00\x00\x0d\x00\x00\x80\x9c\x00\x00\x00'
  17.  
  18. class WhoAreYou(ImpactPacket.Header):
  19.     OP_NUM = 1
  20.  
  21.     __SIZE = 20
  22.  
  23.     def __init__(self, aBuffer = None):
  24.         ImpactPacket.Header.__init__(self, WhoAreYou.__SIZE)
  25.         if aBuffer: self.load_header(aBuffer)
  26.  
  27.     def get_activity_binuuid(self):
  28.         return self.get_bytes().tolist()[0:0+16]
  29.     def set_activity_binuuid(self, binuuid):
  30.         assert 16 == len(binuuid)
  31.         self.get_bytes()[0:0+16] = array.array('B', binuuid)
  32.  
  33.     def get_boot_time(self):
  34.         return self.get_long(16, '<')
  35.     def set_boot_time(self, time):
  36.         self.set_long(16, time, '<')
  37.  
  38.  
  39.     def get_header_size(self):
  40.         return WhoAreYou.__SIZE
  41.  
  42.  
  43. class WhoAreYou2(ImpactPacket.Header):
  44.     OP_NUM = 1
  45.  
  46.     __SIZE = 24
  47.  
  48.     def __init__(self, aBuffer = None):
  49.         ImpactPacket.Header.__init__(self, WhoAreYou2.__SIZE)
  50.         if aBuffer: self.load_header(aBuffer)
  51.  
  52.     def get_seq_num(self):
  53.         return self.get_long(0, '<')
  54.     def set_seq_num(self, num):
  55.         self.set_long(0, num, '<')
  56.  
  57.     def get_cas_binuuid(self):
  58.         return self.get_bytes().tolist()[4:4+16]
  59.     def set_cas_binuuid(self, binuuid):
  60.         assert 16 == len(binuuid)
  61.         self.get_bytes()[4:4+16] = array.array('B', binuuid)
  62.  
  63.     def get_status(self):
  64.         return self.get_long(20, '<')
  65.     def set_status(self, status):
  66.         self.set_long(20, status, '<')
  67.  
  68.  
  69.     def get_header_size(self):
  70.         return WhoAreYou2.__SIZE
  71.